home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The CICA Windows Explosion!
/
The CICA Windows Explosion! - Disc 2.iso
/
programr
/
opttree.zip
/
MFC.ZIP
/
OTTEST.CPP
< prev
next >
Wrap
C/C++ Source or Header
|
1995-01-05
|
18KB
|
730 lines
// ottest.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "ottest.h"
#include "mainfrm.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COttestApp
BEGIN_MESSAGE_MAP(COttestApp, CWinApp)
//{{AFX_MSG_MAP(COttestApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_COMMAND(ID_TEST1, OnTest1)
ON_COMMAND(ID_TEST2, OnTest2)
ON_COMMAND(ID_TEST3, OnTest3)
ON_COMMAND(ID_TEST4, OnTest4)
ON_COMMAND(ID_TEST5, OnTest5)
ON_COMMAND(ID_TEST6, OnTest6)
ON_COMMAND(ID_TEST7, OnTest7)
ON_COMMAND(ID_TEST8, OnTest8)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COttestApp construction
COttestApp::COttestApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only COttestApp object
COttestApp NEAR theApp;
/////////////////////////////////////////////////////////////////////////////
// COttestApp initialization
BOOL COttestApp::InitInstance()
{
/*
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.
AddDocTemplate(new CSingleDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(COttestDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(COttestView)));
// create a new (empty) document
OnFileNew(); */
m_pMainWnd = new CMainFrame;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// Implementation
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//{{AFX_MSG(CAboutDlg)
// No message handlers
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// App command to run the dialog
void COttestApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// COttestApp commands
#ifndef __OPTTREE_H
#include "opttree.h"
#endif
class CMyOptNode:public COptNode /* provide a description text field */
{
public:
/* for leaf node */
CMyOptNode(char txt[], int isxcl, int chksti, int enable):COptNode(txt, isxcl, chksti, enable)
{
setdesc(txt);
}
/* for branch node */
CMyOptNode(char txt[], int isxcl, int isexp):COptNode(txt, isxcl, isexp)
{
setdesc(txt);
}
char desc[80];
void setdesc(char descx[])
{
lstrcpy(desc, descx);
}
};
class CMyOptTree:public COptTree /* provide our own notification handlers */
{
public:
CMyOptTree(CWnd *parent, int isshowdot = 1, int isindinv = 1):COptTree(parent, isshowdot, isindinv)
{
}
void notifyselchg(COptNode *p);
};
class CDlgTest1:public CDialog
{
COptTree *otc;
public:
int cap;
CDlgTest1():CDialog("dlgtest")
{
otc = 0;
}
~CDlgTest1()
{
otc->freeallnodes();
delete otc;
}
BOOL OnInitDialog();
};
class CDlgTest2:public CDialog
{
COptTree *otc;
public:
int cap;
CDlgTest2():CDialog("dlgtest")
{
otc = 0;
}
~CDlgTest2()
{
otc->freeallnodes();
delete otc;
}
BOOL OnInitDialog();
};
class CDlgTest3:public CDialog
{
COptTree *otc;
public:
int cap;
CDlgTest3():CDialog("dlgtest")
{
otc = 0;
}
~CDlgTest3()
{
otc->freeallnodes();
delete otc;
}
BOOL OnInitDialog();
};
class CDlgTest4:public CDialog
{
COptTree *otc;
public:
int cap;
CDlgTest4():CDialog("dlgtest")
{
otc = 0;
}
~CDlgTest4()
{
otc->freeallnodes();
delete otc;
}
BOOL OnInitDialog();
};
BOOL CDlgTest1::OnInitDialog()
{
CMyOptNode *p;
CMyOptNode *q;
CMyOptNode *r;
CMyOptNode *s;
CDialog::OnInitDialog();
if (!cap)
{
otc = new CMyOptTree(this, 1); /* will be deleted by the dlg */
p = new CMyOptNode("Software Products", 0, 1);
p->setdesc("All software products available are listed here");
p->begappendkid();
{
q = new CMyOptNode("Lotus 123 for Windows", 0, 0, 1);
q->setdesc("Spreadsheet program from Lotus Corp.");
p->appendkid(q);
q = new CMyOptNode("Microsoft Word", 0, 1, 1);
q->setdesc("Word Processor from Microsoft");
p->appendkid(q);
q = new CMyOptNode("Borland C++", 0, 1, 0);
q->setdesc("C++ compiler with edge leading C++ features");
p->appendkid(q);
q = new CMyOptNode("Choose One Utility", 0, 0);
q->setdesc("You can choose one of the utilities listed below");
q->begappendkid();
{
r = new CMyOptNode("Visual Calendar", 1, 1, 1);
r->setdesc("Utility keeping track of your appointments");
q->appendkid(r);
r = new CMyOptNode("Norton Desktop", 1, 0);
r->setdesc("A set of powerful utilities from Symantec");
r->begappendkid();
{
s = new CMyOptNode("Norton Disk Doctor", 0, 0, 1);
s->setdesc("Program checking and/or fixing your hard disk");
r->appendkid(s);
s = new CMyOptNode("Virtual Desktop", 0, 0, 1);
s->setdesc("Manages your desktop");
r->appendkid(s);
s = new CMyOptNode("INI Assistant", 0, 0, 1);
s->setdesc("Helps you understand the profound Windows INI settings");
r->appendkid(s);
}
r->endappendkid();
q->appendkid(r);
r = new CMyOptNode("Business Card for Windows", 1, 0, 1);
r->setdesc("A simple free form database");
q->appendkid(r);
r = new CMyOptNode("MicroHelp Uninstaller", 1, 0, 1);
r->setdesc("Uninstalls all the nasty Windows applications");
q->appendkid(r);
}
q->endappendkid();
p->appendkid(q);
q = new CMyOptNode("Visual C++", 0, 1, 1);
q->setdesc("C++ compiler from Microsoft");
p->appendkid(q);
}
p->endappendkid();
otc->begappendroot();
otc->appendroot(p);
otc->endappendroot();
}
else
{
int i;
int j;
char b[20];
otc = new CMyOptTree(this, 1, 0); /* invalidate as a whole */
otc->begappendroot();
for (i = 0; i < 10; i++)
{
wsprintf(b, "%5d-%5d", i*1000, (i+1)*1000-1);
p = new CMyOptNode(b, 0, 0);
p->begappendkid();
for (j = 0; j < 1000; j++)
{
wsprintf(b, "%5d", i*1000+j);
q = new CMyOptNode(b, 0, 1, 1);
p->appendkid(q);
}
p->endappendkid();
otc->appendroot(p);
}
otc->endappendroot();
}
otc->create(102, 101);
SetWindowText("Test1 - Option Tree");
return 1;
}
BOOL CDlgTest2::OnInitDialog()
{
CMyOptNode *q;
CDialog::OnInitDialog();
otc = new CMyOptTree(this, 0); /* will be deleted by the dlg */
if (!cap)
{
otc->begappendroot();
q = new CMyOptNode("Lotus 123 for Windows", 0, 1, 1);
q->setdesc("Spreadsheet program from Lotus Corp.");
otc->appendroot(q);
q = new CMyOptNode("Microsoft Word", 0, 0, 1);
q->setdesc("Word Processor from Microsoft");
otc->appendroot(q);
q = new CMyOptNode("Borland C++", 0, 0, 1);
q->setdesc("C++ compiler with edge leading C++ features");
otc->appendroot(q);
q = new CMyOptNode("Visual Calendar", 0, 1, 1);
q->setdesc("Utility keeping track of your appointments");
otc->appendroot(q);
q = new CMyOptNode("Business Card for Windows", 0, 0, 1);
q->setdesc("A simple free form database");
otc->appendroot(q);
q = new CMyOptNode("Visual C++", 0, 1, 1);
q->setdesc("C++ compiler from Microsoft");
otc->appendroot(q);
q = new CMyOptNode("Freeman Installer", 0, 0, 1);
q->setdesc("A powerful install utility from Freeman-Teresa Software");
otc->appendroot(q);
q = new CMyOptNode("Adobe PhotoShop", 0, 1, 1);
q->setdesc("A very popular image processor");
otc->appendroot(q);
q = new CMyOptNode("Delphi", 0, 0, 1);
q->setdesc("A very high level client-server database development tool");
otc->appendroot(q);
q = new CMyOptNode("DOOM", 0, 1, 1);
q->setdesc("An exciting 3D action game from ID Software");
otc->appendroot(q);
q = new CMyOptNode("PagePlus", 0, 1, 1);
q->setdesc("A FREE DTP program");
otc->appendroot(q);
q = new CMyOptNode("AusTax", 0, 0, 1);
q->setdesc("Helps you reduce your tax payment");
otc->appendroot(q);
q = new CMyOptNode("CIM", 0, 1, 1);
q->setdesc("CompuServe Information Manager");
otc->appendroot(q);
otc->endappendroot();
}
else
{
int i;
char b[10];
otc->begappendroot();
for (i = 0; i < 10000; i++)
{
wsprintf(b, "Node %d", i);
q = new CMyOptNode(b, 0, 1, 1);
otc->appendroot(q);
}
otc->endappendroot();
}
otc->create(102, 101);
SetWindowText("Test2 - Option List");
return 1;
}
BOOL CDlgTest3::OnInitDialog()
{
CMyOptNode *p;
CMyOptNode *q;
CMyOptNode *r;
CMyOptNode *s;
CDialog::OnInitDialog();
otc = new CMyOptTree(this, 1); /* will be deleted by the dlg */
if (!cap) /* default */
{
p = new CMyOptNode("Software Products", 0, 1);
p->setdesc("All software products available are listed here");
p->begappendkid();
{
q = new CMyOptNode("Lotus 123 for Windows", 0, 0, 2);
q->setdesc("Spreadsheet program from Lotus Corp.");
p->appendkid(q);
q = new CMyOptNode("Microsoft Word", 0, 1, 2);
q->setdesc("Word Processor from Microsoft");
p->appendkid(q);
q = new CMyOptNode("Borland C++", 0, 1, 2);
q->setdesc("C++ compiler with edge leading C++ features");
p->appendkid(q);
q = new CMyOptNode("Choose One Utility", 0, 0);
q->setdesc("You can choose one of the utilities listed below");
q->begappendkid();
{
r = new CMyOptNode("Visual Calendar", 1, 1, 2);
r->setdesc("Utility keeping track of your appointments");
q->appendkid(r);
r = new CMyOptNode("Norton Desktop", 1, 0);
r->setdesc("A set of powerful utilities from Symantec");
r->begappendkid();
{
s = new CMyOptNode("Norton Disk Doctor", 0, 0, 2);
s->setdesc("Program checking and/or fixing your hard disk");
r->appendkid(s);
s = new CMyOptNode("Virtual Desktop", 0, 0, 2);
s->setdesc("Manages your desktop");
r->appendkid(s);
s = new CMyOptNode("INI Assistant", 0, 0, 2);
s->setdesc("Helps you understand the profound Windows INI settings");
r->appendkid(s);
}
r->endappendkid();
q->appendkid(r);
r = new CMyOptNode("Business Card for Windows", 1, 0, 2);
r->setdesc("A simple free form database");
q->appendkid(r);
r = new CMyOptNode("MicroHelp Uninstaller", 1, 0, 2);
r->setdesc("Uninstalls all the nasty Windows applications");
q->appendkid(r);
}
q->endappendkid();
p->appendkid(q);
q = new CMyOptNode("Visual C++", 0, 1, 2);
q->setdesc("C++ compiler from Microsoft");
p->appendkid(q);
}
p->endappendkid();
otc->begappendroot();
otc->appendroot(p);
otc->endappendroot();
}
else
{
int i;
int j;
char b[20];
otc->begappendroot();
for (i = 0; i < 10; i++)
{
wsprintf(b, "%5d-%5d", i*1000, (i+1)*1000-1);
p = new CMyOptNode(b, 0, 0);
p->begappendkid();
for (j = 0; j < 1000; j++)
{
wsprintf(b, "%5d", i*1000+j);
q = new CMyOptNode(b, 0, 1, 2);
p->appendkid(q);
}
p->endappendkid();
otc->appendroot(p);
}
otc->endappendroot();
}
otc->create(102, 101);
SetWindowText("Test3 - Tree View");
return 1;
}
BOOL CDlgTest4::OnInitDialog()
{
CMyOptNode *q;
CDialog::OnInitDialog();
otc = new CMyOptTree(this, 0);
if (!cap)
{
otc->begappendroot();
q = new CMyOptNode("Lotus 123 for Windows", 0, 0, 2);
q->setdesc("Spreadsheet program from Lotus Corp.");
otc->appendroot(q);
q = new CMyOptNode("Microsoft Word", 0, 0, 2);
q->setdesc("Word Processor from Microsoft");
otc->appendroot(q);
q = new CMyOptNode("Borland C++", 0, 0, 2);
q->setdesc("C++ compiler with edge leading C++ features");
otc->appendroot(q);
q = new CMyOptNode("Visual Calendar", 0, 0, 2);
q->setdesc("Utility keeping track of your appointments");
otc->appendroot(q);
q = new CMyOptNode("Business Card for Windows", 0, 0, 2);
q->setdesc("A simple free form database");
otc->appendroot(q);
q = new CMyOptNode("Visual C++", 0, 0, 2);
q->setdesc("C++ compiler from Microsoft");
otc->appendroot(q);
q = new CMyOptNode("Freeman Installer", 0, 0, 2);
q->setdesc("A powerful install utility from Freeman-Teresa Software");
otc->appendroot(q);
q = new CMyOptNode("Adobe PhotoShop", 0, 0, 2);
q->setdesc("A very popular image processor");
otc->appendroot(q);
q = new CMyOptNode("Delphi", 0, 0, 2);
q->setdesc("A very high level client-server database development tool");
otc->appendroot(q);
q = new CMyOptNode("DOOM", 0, 0, 2);
q->setdesc("An exciting 3D action game from ID Software");
otc->appendroot(q);
q = new CMyOptNode("PagePlus", 0, 0, 2);
q->setdesc("A FREE DTP program");
otc->appendroot(q);
q = new CMyOptNode("AusTax", 0, 0, 2);
q->setdesc("Helps you reduce your tax payment");
otc->appendroot(q);
q = new CMyOptNode("CIM", 0, 0, 2);
q->setdesc("CompuServe Information Manager");
otc->appendroot(q);
otc->endappendroot();
}
else
{
int i;
char b[10];
otc->begappendroot();
for (i = 0; i < 10000; i++)
{
wsprintf(b, "Node %d", i);
q = new CMyOptNode(b, 0, 0, 2);
otc->appendroot(q);
}
otc->endappendroot();
}
otc->create(102, 101);
SetWindowText("Test3 - Tree View");
return 1;
}
/* p is just selected */
void CMyOptTree::notifyselchg(COptNode *p)
{
CMyOptNode *q;
q = (CMyOptNode*)p;
GetParent()->GetDlgItem(102)->SetWindowText(q->desc);
}
void COttestApp::OnTest1()
{
// TODO: Add your command handler code here
CDlgTest1 d;
d.cap = 0;
d.DoModal();
}
void COttestApp::OnTest2()
{
// TODO: Add your command handler code here
CDlgTest2 d;
d.cap = 0;
d.DoModal();
}
void COttestApp::OnTest3()
{
// TODO: Add your command handler code here
CDlgTest3 d;
d.cap = 0;
d.DoModal();
}
void COttestApp::OnTest4()
{
// TODO: Add your command handler code here
CDlgTest4 d;
d.cap = 0;
d.DoModal();
}
void COttestApp::OnTest5()
{
// TODO: Add your command handler code here
CDlgTest1 d;
d.cap = 1;
d.DoModal();
}
void COttestApp::OnTest6()
{
// TODO: Add your command handler code here
CDlgTest2 d;
d.cap = 1;
d.DoModal();
}
void COttestApp::OnTest7()
{
// TODO: Add your command handler code here
CDlgTest3 d;
d.cap = 1;
d.DoModal();
}
void COttestApp::OnTest8()
{
// TODO: Add your command handler code here
CDlgTest4 d;
d.cap = 1;
d.DoModal();
}